#ifndef __CELL_H__
#define __CELL_H__

#include <hgerect.h>
#include <hgesprite.h>

class CCell
{
private:
  static float m_Width;
  static float m_Height;

public:
  static void  SetWidth (const float _Width)  { m_Width  = _Width;  }
  static void  SetHeight(const float _Height) { m_Height = _Height; }
  static float GetWidth()  { return m_Width;  }
  static float GetHeight() { return m_Height; }

public:
  enum CellType
  {
    Seat,
    Empty,
    Exit
  };

  CCell(
      const float    _X1,
      const float    _Y1,
      const CellType _CellType
    );
  ~CCell();

  void SetCellType(
      const CellType _CellType
    );
  CellType GetCellType() const { return m_CellType; }
  hgeRect  GetHgeRect () const { return m_HgeRect;  }

  void Render();
  void Update(
      float _TimeDelta
    );

private:
  static HTEXTURE GetTexture(const CellType _CellType);

private:
  CellType  m_CellType;

  hgeRect   m_HgeRect;
  hgeSprite m_HgeSprite;
};

#endif //__GRID_H__
